[Chapter 35] 35.4 ?flags? in Header Definitions
Author: Bryan Costales & Eric Allman
Date: 1999-01-06T21:48:14Z

#

| Chapter 35 Headers |

## 35.4 ?flags? in Header Definitions

The `name` part of the `H` configuration command can be prefixed with a list of flags. This list, if present, must be surrounded by `?` characters:

>     H?flags?name:field

The `?` characters must immediately follow the `H` and immediately precede the `name` with no intervening spaces. If a space precedes the first `?`, that `?` is misinterpreted as part of the header `name`, rather than as the start of a list of flags, and this error message is printed:

>     header syntax error, line " ?flags?name: field"

>                                note leading space

If the first `?` is present but the second is absent, sendmail prints the same error message and skips that `H` configuration command. The flags that are listed between the `?` characters correspond to flags that are listed with delivery agent `F=` equates. When processing a mail message for forwarding or delivery, sendmail adds a header line if a flag is common to both the `H` definition list of flags and the delivery agent's list of flags. For example,

>     H?P?Return-Path: <$g>

The above `H` definition begins with a `P` flag. This tells sendmail to add this header line to the mail message only if a selected delivery agent also contains that flag. Since the `Return-Path:` header (see Section 35.10.28, Return-Path:) should be added only during final delivery, the `P` flag appears only in the `prog` and `local` delivery agent definitions:

>     Mprog,  P=/bin/sh,   F=lsDFMeuP,  S=10, R=20, A=sh -c $u
>     Mlocal, P=/bin/mail, F=rlsDFMmnP, S=10, R=20, A=mail -d $u

>                                    note

No check is made to ensure that the `H` flags correspond to existing delivery agent flags. Beware that if a corresponding `F=` flag does not exist in some delivery agent definition, that header may never be added to any mail message.

Care should be used to avoid selecting flags that have other meanings for delivery agents. Table 30.8 in Section 30.8, "Alphabetized F= Flags" lists all the delivery agent flags that have predefined meanings, including those traditionally used with header definitions.

35.3 Header Field Contents |  | 35.5 Header Behavior in conf.c